<?php

	session_start();

	$chars = join("",array_merge(range('a','z'), range('A','Z'), range(0,9) ));
	/*
	 * $chars：abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
	 * join(separator,array) 返回一个由数组元素组合成的字符串
	 *      separator 规定数组元素之间放置的内容，默认是""
	 * array_merge合并一个或多个数组
	 * range() 创建一个包含指定范围的元素的数组
	 */
	$chars = str_shuffle($chars); //随机地打乱字符串中的所有字符
	$chars = substr($chars, 0, 5); //返回字符串的一部分 start:规定从何处开始，length:规定要返回的字符串长度
	//$chars验证码

	$code = $chars; //将原始验证码赋值给变量
	$code = strtolower($code); //将字符串转化为小写

	$_SESSION['code'] = $code;

	/*$charsArr = str_split($chars);
	print_r($charsArr);
	echo count($charsArr);
	echo $charsArr[1];*/

	//显示验证码
	function showCode($char){
		header("Content-type:image/png");
		$img = imagecreatetruecolor(150, 35); //创建一个画布
		$back = imagecolorallocate($img, 204, 204, 204);
		$black = imagecolorallocate($img, 51, 51, 51);
		$fontColor = imagecolorallocate($img, mt_rand(50,200), mt_rand(50,200), mt_rand(50,200));
		//$fontColor = imagecolorallocate($img,0, 0, 0);
		imagefill($img,0,0,$back);

		//imagestring($img, 5, 60, 20, $char, $fontColor);
		/*$charsArr = str_split($char);
		for($i=0;$i<count($charsArr);$i++){
			imagestring($img, 5, mt_rand(i*30,(i+1)*30), mt_rand(0,180), $charsArr[$i], $fontColor);
		}*/
		$charsArr = str_split($char);
		imagestring($img, 5, mt_rand(1,20), mt_rand(10,20), $charsArr[0], $fontColor);
		//imagefttext($img, 10, 45, mt_rand(29,50), mt_rand(10,20), $fontColor, $font_file, $charsArr[0]);
		imagestring($img, 5, mt_rand(29,50), mt_rand(10,20), $charsArr[1], $fontColor);
		imagestring($img, 5, mt_rand(59,80), mt_rand(10,20), $charsArr[2], $fontColor);
		imagestring($img, 5, mt_rand(89,110), mt_rand(10,20), $charsArr[3], $fontColor);
		imagestring($img, 5, mt_rand(119,140), mt_rand(10,20), $charsArr[4], $fontColor);

		//画干扰点
		for($i=0;$i<50;$i++){
			imagesetpixel($img, mt_rand(1,149), mt_rand(1,34), $black);
			//imagesetpixel：画一个单一像素
		}
		//画干扰线
		for($i=0;$i<10;$i++){
			imageline($img, mt_rand(1,149), mt_rand(1,34), mt_rand(1,149), mt_rand(1,34), $black);
		}

		imagepng($img);
		imagedestroy($img);
	}

	showCode($chars);



	
?>

